映射---map

  写出一些代码,在一个(名字,号码)对的表中寻找一个名字,这也是一件很讨厌的事情。除此之外,线性检索一般也是相当低效的,除非对于特别短的表。另有一些数据结构直接支持插入、删除和基于值的检索,标准库特别为此提供了 map 类型。map 就是值的对偶的容器。例如,

    map<string, int> phone_book;

在其他一些地方,人们也把 map 称做关联数组或者字典。

  在用它的第一个类型(称为关键码)的某个值去索引时,map 将返回其第二个类型的(称为值类型,或者映射类型)的对应值。例如,

    void print_entry(const string& s)
    {
        if(int i = phone_book[s]) cout << s << ' ' << i << '\n';
    }

如果对于某个关键码 s 无法找到匹配,phone_book 将返回一个默认值。map 里对整数类型的默认值是 0。这里我实际上假定了 0 不是一个合法的电话号码。

🔚